home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / network / serial / termpkg.rea < prev    next >
Text File  |  1996-11-17  |  11KB  |  238 lines

  1. These are crude operational docs for sure, but they should give you a basic 
  2. understanding of how to use both termnet and termsrvd.
  3.  
  4.  The purpose of these programs was to emulate a terminal server. Termnet is 
  5. the client through which you the user communicates with the serial devices
  6. with like you would use telnet, and termsrvd is the server program that
  7. provides the actual connection to the serial device. By using a subset of the
  8. telnet protocol w/ a few special extensions allowing the port, bad rate and 
  9. port parameters to be set, gives the user a convenient terminal program 
  10. providing access to the serial ports on any machine that is running the
  11. termsrvd program.
  12.  
  13.  Just as termnet can be used to talk to any telnet service, telnet can also
  14. be used to connect to termsrvd, though the special port configuration options
  15. will not work in either of these situations. To alleviate this problem to 
  16. some degree, termsrvd can be configured through the file /etc/services and
  17. /etc/inetd.conf to allow it to be started w/ fixed port assignments and
  18. configurations.
  19.  
  20.  Okay, now on to the options used by the programs. It is my hope to one day
  21. change termsrvd's options to conform to termnet's options. This will help in
  22. remembering them considerably. 
  23.  
  24. termsrvd:
  25.  
  26.     termsrvd [options]
  27.  
  28.     -p <settings>    // Set port default port configuration
  29.     -b <baud rate>    // Set default baud rate
  30.     -d <device>    // Set default initial device
  31.  
  32.     The port settings is a string composed of the following characters
  33.     
  34.         N    // No parity (default) 
  35.         E    // Even parity
  36.         O    // Odd parity
  37.         8    // 8 bits / word (default) 
  38.         7    // 7 bits / word
  39.         6    // 6 bits / word
  40.         5    // 5 bits / word
  41.         1    // 1 stop bit (default) 
  42.         2    // 2 stop bits
  43.         H    // Half Duplex
  44.         F    // Full Duplex (default)
  45.         S[01]   // S/W Flow control (off/on) (default = on)
  46.         C[01]   // H/W Flow control (off/on) (default = off)
  47.  
  48.     For example, -s 7EH2C1S0 will set up the port configuration as 7 bits,
  49.     Even parity, 2 stop bits, Full duplex, and Hardware flow control on. 
  50.     The entire set does not have to be specified, any option not given
  51.     will remain unchanged.
  52.  
  53.     Baud rate can be any of the following baud rates assuming both the 
  54.     hardware and the machines OS will allow them. I'm not sure of the
  55.     commend, but fro my understanding, Unix will only allow a maximum 
  56.     baud rate of 9600 though there is a command that can be run to set
  57.     it to a maximum of 38400.
  58.  
  59.         300
  60.         600
  61.         1200
  62.         2400
  63.         4800
  64.         9600
  65.         19200
  66.         38400
  67.  
  68.     Device is the full name of the device to initialy connect to such
  69.     as /dev/cua0.
  70.  
  71. termnet:
  72.  
  73.     termnet [options] [<host> [<port>]] [chat like sequences]
  74.  
  75.     If not provided, termnet will attempt to connect to 'localhost' on
  76.     port 'termsrvd'.
  77.  
  78.     -e            // Echo localy
  79.     -d <device>        // Initial device
  80.     -p <settings>        // Initial port configuration
  81.     -b <baudrate>        // Initial baudrate
  82.     -f <script file>    // Run a Chat like script file
  83.     -c             // Continue to execute after the script 
  84.                    is exausted
  85.  
  86.     All of the options except -r -l -f & -c take parameters in the form 
  87.     described above for termsrvd.
  88.  
  89.  The chat sequences mentioned above follow the sequence of <send string>
  90. <expect string>. If they are placed on the command line, each argument found
  91. after the options and the host/port will be considered as individual strings
  92. spaces my be included, though care should be excersized because of the way 
  93. the shell will interpret the strings before it gives them to the program!
  94.  
  95.  Using a file with then -f option not only protects you from the interaction
  96. of the shell but also provides the added functionality of being able to
  97. execute any of the commands termnet provides. They can be interjected 
  98. anywhere in the script using the sequence "`<command string>`". Please note
  99. the use of the ` character, it is what tells the interpreter that the
  100. sequence is a command. The use of single or double quotes to demark the
  101. each string (except the command strings) are highly recommended. The '\' 
  102. character is used to put special characters into the string. The following
  103. is a list of allowable escape sequences:
  104.  
  105.     \r        // Carriage return
  106.     \n        // Line feed
  107.     \e        // Escape character
  108.     \t        // Tab character
  109.     \x<number>     // Send hex number as a character
  110.     \0<number>    // Send Octal number as a character
  111.     \[1-9]<number>    // Send Decimal number as a character
  112.     \<character>    // Send <character> w/ out interpreting it
  113.  
  114.  All of the above except the \e and the \t may also be used in the command
  115. line sequences.
  116.  
  117.  The one MAJOR thing that needs to be remembered when using either form of 
  118. the chat sequences is that the program will be exited at the end of the 
  119. sequence unless the -c option is present on the command line.                
  120.                                                                              
  121.  Also, please remember that the keyboard is fully functional while the 
  122. sequences are running, this allows you to intervene in cases where things 
  123. don't go as your chat script expects. I have found this to be most useful, 
  124. though you do need to be careful not type anything in as it will be sent 
  125. to the other end!
  126.  
  127.  The command interpreter of termnet can be accessed w/ by typing a ^] 
  128. character. Unfortunately this character cannot be changed at this point. The
  129. following commands can be given.
  130.  
  131.     Echo on            // Echo localy
  132.     Echo off        // Disable Echo
  133.     Echo arg arg ...    // Echo args to stdout
  134.     Pause <time>        // Pause <time> seconds
  135.     Help            // Display Available Commands
  136.     Baud [<buad rate>]    // set/display baud rate 
  137.     Port [<settings>]    // set/display port settings
  138.     Devc [<device>]        // set/display device
  139.     Pause <seconds>        // Pause for <seconds> in time
  140.     Exit            // Exit the program
  141.     Quit            // Exit the program
  142.     $ <command> [<args>]    // Execute a command w/ its standard i/o
  143.                 // redirected to the serial device
  144.     ! <command> [<args>]    // Execute a command, this IS BROKEN!!!!
  145.  
  146.  The commands Baud, port, and devc will display the current setting of that
  147. item from the server. These commands are only functional if termnet is
  148. connected to termsrvd and not a telnet server. Also, if the special keyword
  149. 'Select' is given for the device when using the devc command, you will be
  150. stepped through the devices that termsrvd has been configured for through
  151. the file /etc/termsrvd.conf.
  152.  
  153.  Configuration files:
  154.  
  155.     /etc/inetd.conf
  156.     /etc/services
  157.     /etc/termsrd.conf
  158.  
  159. The file /usr/var/adm/termsrvd.log may be generated, I'll be honest, I'm not
  160. sure, but if it is you will want to keep an eye on it as it can eat up alot
  161. diskspace as time goes on. Hmmm... I probably should check mine!!!
  162.  
  163.  The /etc/termsrvd.conf file consists of one line enties w/ the following
  164. format:
  165.  
  166.     <Name>:<Device>:[<Baud>]:[<Port Settings>]
  167.  
  168.  <Name>            Reference name (Required)
  169.  <Device>        Fully Qualified Device name (Required)
  170.  <Baud>            Baud rate (Optional)
  171.  <Port Settings>    Bits, Parity, etc. (Optional)
  172.  
  173.  Baud and Port Settings are expressed in a like manner as for the 
  174. options. Each device to be accessed must have an entry in the table. A 
  175. device may have multiple entries in the file each with a different 
  176. reference name. If the device is chosen through the DEVC command using 
  177. the actual device name, than the baud and port settings will remain as 
  178. they were. The file termsrvd.conf.eg shows examples of how various 
  179. configurations can look.
  180.  
  181.  I use the example script file to connect to my computer at work over the X.25
  182. network to wake it up and have it call me back to initiate a PPP link to 
  183. home. It works great as long as as all of the connections go as expected. Mind
  184. you though, I had to replace the actuall X.25 network number and all of the
  185. usernames and passwords as my Boss has made it quiet clear just how high the
  186. tree is that he would personaly hang me from if I gave out any of that 
  187. information. It should still work out well as an example of how to do a 
  188. script file though. To use it I would use the following command:
  189.  
  190.  termnet -d /dev/cua1 -f connect-work
  191.  
  192.  In case it's not inuitive, it starts by setting the port parms to
  193. 7 bits, even parity, one stop bit. It then dials up the X.25 network
  194. after getting carrier, it sends an '@D' and waits for 'TERMINAL'
  195. it then sends a carriage return and waits for the prompt '@' at which
  196. time it connects to the computer at work, it then changes the port settings 
  197. to 8 bits no parity then logs in, and telnets over to my machine and logs 
  198. in as a special user that will cause my machine to wake up in a minute or so 
  199. later and call my computer at home back. After seeing the '+++' I know that 
  200. it will be calling me back soon so I put the port settings back to 7E1 and 
  201. forces the modem to hang up. After that I just have to wait for my computer
  202. call me back and log in as a user that starts up the pppd daemon.
  203.  
  204.  Now hopefully between the above and the example files given you will be able
  205. to make good use of these programs. I have been using them regularly for
  206. almost a year now w/ only minimal problems. Though I CAN NOT BE HELD
  207. RESPONSIBLE FOR ANY DAMAGES THAT MAY ARISE FROM THE USE OF THESE PROGRAMS!!!!
  208. This even includes the blowing up of your Network, and Computer. BE SURE NOT
  209. TO OVERWRITE THE /etc/inetd.conf and /etc/services WITH THE EXAMPLES FILES
  210. PROVIDED, THIS WILL SURELY HURT!!!! Use the example files as examples as to
  211. what is needed to be included in your ALREADY EXISTING FILES!!!!! With that
  212. said, good luck and enjoy! If you have any problems or find any bugs, you can
  213. email me at jcroft@unicomp.net. Not that any of my code has bugs, heheh.
  214.  
  215.  I also will not turn down any donations. Being that I like many others in
  216. the world is but a humble indentured servent living hand to mouth will always
  217. appreciate any additional income that arises from my play. Though please keep
  218. mind that at $25.00 a pop, bad checks do much more harm than good!
  219.  
  220.         Joe Croft
  221.         225 Arthur Rd.
  222.         Hurst, Tx., 76053
  223.         jcroft@unicomp.net
  224.  
  225.  Oh, I forgot to mention, if you take the time to look at the libtn directory,
  226. and how it is used in the two programs, you will find a very versitile 
  227. library for creating telnet applications, though it still needs some work on
  228. it as it's DO/DONT WILL/WONT processing is uh... single ended. In otherwords,
  229. it does not keep track of each side's abilities and desires.
  230.  
  231.  I have found through playing that termsrvd has trouble with the first 
  232. entry in the termsrvd.conf file. It shows up most when you have the entry 
  233. specify a baud rate and port settings that differ from the defaults then 
  234. use termnet w/o specifying device. Not sure of the cause but it doesn't 
  235. seem to break the program. I will look into it and by the next release it 
  236. will be fixed. If any off Yall happen to find what the problem is before 
  237. I, please email me!
  238.